1. Field of the Invention
This invention relates in general to computer systems and in particular to restricting the access to environmental circuits accessible via a computer bus.
2. Description of the Related Art
Computer systems are information handling electronic systems which can be designed to give independent computing power to one user or a plurality of users. Computer systems may be found in many forms including, for example, mainframes, minicomputers, workstations, servers, personal computers, internet terminals, notebooks, and embedded systems. Computer systems include desk top, floor standing, rack mounted, or portable versions. A typical computer system includes at least one system processor, associated memory and control logic, and peripheral devices that provide input and output for the system. Such peripheral devices may include display monitors, keyboards, mouse-type input devices, floppy and hard disk drives, CD-ROM drives, printers, network capability card circuits, terminal devices, modems, televisions, sound devices, voice recognition devices, electronic pen devices, and mass storage devices such as tape drives, CD-R drives, or DVDs.
Computer systems may also include environmental circuits for monitoring and/or controlling the environmental conditions in the computer system. Such circuits include sensors for monitoring the ambient temperature in the chassis of the computer system, sensors for monitoring the voltages of the power supplies, circuits for monitoring and controlling the operation of the fans of the computer system, a chassis intrusion circuit, and a battery voltage monitor circuit for notebook computers. Typically, these environmental circuits are accessible via a computer bus such as a computer bus conforming to the System Management Specification, Rev. 1.0.
With some computer systems, the operating system of the computer system can access the environmental circuits such that data can be written to these circuits. However, providing an operating system with the ability to access environmental circuits makes these circuits susceptible to the actions of a computer virus. For example, a computer virus may write to a fan controller circuit, a turn-on temperature setting that is so high that the fan will not operate, thereby placing the components of the computer system at risk from overheating. Another problem is that a user may inadvertently change environmental settings.
What is needed is a system to restrict access to environmental circuits of a computer system.
It has been discovered that providing a computer system with a system for restricting access to environmental circuits accessible via a computer bus advantageously reduces the susceptibility of those circuits to an undesirable adjustment in operating parameters.
In one aspect, a computer system includes a system processor, a system memory operably coupled to the system processor, and a computer bus. The computer system also includes a plurality of environmental circuits operably coupled to the computer bus. The computer system further includes a non-volatile memory storing computer code whose execution by the system processor implements an interrupt handler, which determines whether a circuit access to an environmental circuit of the plurality via the computer bus is restricted.
Another aspect includes a method for restricting access to environmental circuits operably coupled to a computer bus. The method includes generating an interrupt in response to an I/O access to an I/O register assigned to a bus controller of the computer bus. The method also includes determining whether the I/O access corresponds to a restricted circuit access to an environmental circuit operably coupled to the computer bus. The method further includes preventing the circuit access depending upon whether the I/O access is determined to correspond to a restricted circuit access.
In another aspect, a computer system includes a system processor, a system memory operably coupled to the system processor, and a serial computer bus operably coupled to the system processor. The computer system also includes a plurality of environmental circuits operably coupled to the serial computer bus and accessible via the serial computer bus. The computer system further includes a serial bus controller and a plurality of I/O registers assigned to the bus controller. The plurality of I/O registers includes an I/O command register, an I/O address register, and an I/O control register. The serial bus controller operates on contents of the I/O command register, I/O address register, and I/O control register to perform bus transactions on the computer bus for circuit access to environmental circuits of the plurality. The plurality of environmental circuits are accessible via circuit accesses by I/O accesses to the plurality of I/O registers. The computer system also includes a trap circuit for trapping an I/O access to at least one of the plurality of I/O registers and an interrupt controller having an output to generate an interrupt in response to the trap circuit trapping an I/O access to at least one of the plurality of I/O registers. The computer system further includes a non-volatile memory storing code whose execution by the system processor implements an interrupt handler in response to an interrupt generated by the interrupt controller due to a trapped I/O access to an I/O register of the plurality. The interrupt handler determines whether a circuit access corresponding to the trapped I/O access is a restricted circuit access.